// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "WorldEntityManagerDriver.h"

/**
 * Open OpenDRIVE file..
 */
class FWorldEntityManagerDriverFile : public FWorldEntityManagerDriver
{
public:

	FWorldEntityManagerDriverFile();

	void Connect(const std::string& content) override;

	int GetRevision(int world) override;

	FWorldEntityManagerPool::Ptr GetRegion(double E, double W, double N, double S, int world, int rev) override;

	void SetRegion(const FWorldEntityManagerPool::Ptr& pool, 
					const std::unordered_set<FWorldEntity::Ptr>& newEntities,
					const std::unordered_set<FWorldEntity::Ptr>& dirtyEntities,
					const std::unordered_set<FWorldEntity::Ptr>& removedEntities,
					int world, int rev) override;

private:

	// Hide pugixml library.
	struct Opaque;
	std::shared_ptr<Opaque>	_op;

};
